🦊Face Swap
🏠/🦊雑に学ぶComfyUI
前/
次/🦊LaMa
face swap(顔の入れ替え)はdeepfakeとして何年も前から存在します
ただし当時は同じ人間の顔が何百枚と必要でした
しかし、今では性能を多少犠牲にする代わりに数枚、もしくは1枚でface swapが行えるようになりました
ReActor.iconReActor
1枚の画像でのface swapはInsightFaceという技術が現在ベースラインになっています
それを使いやすくしたのがroop、そのroopが開発を終了してしまったため、それを引き継いだのがこのReActorです
🪢カスタムノード
ReActor Node for ComfyUI
https://gyazo.com/1a0a81f044bd264db835ef99d40a37d1
ReActor_Fast.json
InsightFaceは128 × 128というかなり低解像度の画像を生成します
(256×256、512×512も存在するが、社会的な影響を考え開発者によって封印されている)
そのため、GFPGANやCodeFormerといった顔特化のアップスケーラーで解像度を上げるのですが、顔のディテールが減りかなりのっぺらとしてしまいます
🥴ID転送
🦊IP-Adapterなど、画像を渡して、それを参考に絵を描いてもらう手法がありますが、その中で人物(顔)に特化させタスクをID転送と呼びます
顔に特化したIP-Adapterモデルip-adapter-plus-face
上のInsightFaceを取り入れたIP-Adapter-FaceID
その技術と取り入れたPhotoMaker、InstantID
DiT版
ACE++
正確にいえばこれらは、参照画像と同じ顔の画像を生成するものですが、顔のみのinpaintingを行えば実質face swapとして扱うことができます
🤝組み合わせる
ReActorでFace SwapしたあとにInstantIDを使ってリファインする
😚deepfake以外の使い方
inpainting後にface swapすることで一貫性のある表情差分を作る
Stable Video Diffusion + AnimateDiff video2video + FaceSwap + フレーム補完